require 'html_list'
require 'custom_error_messages'
#require 'pretty_twitter'

# Methods added to this helper will be available to all templates in the application.
module ApplicationHelper

  def crypted_password_js email,host
	str = <<STR
	      <script type="text/javascript">
			  //Thanks to http://joemaller.com/js-mailer.shtml
			  ename='#{email}'
			  ehost='#{host}'
			  emailE = ename + '@' + ehost
			  document.write(
			    '<a href="mailto:' + emailE + '">'
			    + emailE + '</a><br>')

			</script>
STR
  end

  def pagination_options
    { :prev_label => "← ", :next_label => " →"}
  end

  def authorized?
    logged_in? and current_user.admin
  end

  def hidden_element text, options = {}
		content_tag "div", text, :style => 'display: none;', :id => options[:id]
  end

  def toggle_hidden_element id, options = {}

  	show = options[:show] || "Mostrar"
  	hide = (options[:hide] || options[:show]) || "Esconder"

  	text = content_tag "span", show, :id => "#{id}_text"

  	options[:onclick] = "toggleText('#{id}','#{show}','#{hide}')"
  	content_tag("p",link_to(text , "javascript:void(0);", options))
  end

	def login_required_message
		"<p>É necessário estar logado para realizar esta operação.</p>" + "<p>Faça o #{link_to "login", login_path}</p>"
	end

  def atendee_required_message
    "<p>É preciso ter preenchido o formulário de inscrição para mandar trabalhos.</p>" + "<p>Faça-o #{link_to "aqui", attendees_path}.</p>"
  end

  def render_menu

      menu_itens = [ ["Notícias",posts_path],
                     ["Inscrições",attendees_path],
                     ["Trabalhos",works_path],
                     ["Programação", programacao_path],
                     ["Hospedagem", hospedagem_path],
                     ["Informações",infos_path],
                     ["Contato",contato_path]
                    ]

        menu = menu_itens.map do |elem|
        	first = link_to elem[0], elem[1] , :id => is_current?(elem[1])
        	second = ul(elem[2] , {:class => 'menu'}, {:class => 'item' } ) if elem[2] != nil
        	"#{first}\n #{second}\n"
       	end

        ul menu, { :id => 'menu_dropdown', :class => 'menubar' }, { :class => 'submenu' }
  end

  def render_pets_ufrgs
    menu_itens = [ [ "PET Biologia", "http://www.ufrgs.br/petbiologia"],
			                  [ "PET Ciências Sociais","http://www.ufrgs.br/pet_sociais/" ],
			                  [ "PET Computação", "http://www.inf.ufrgs.br/pet"],
			                  [ "PET Educação Física", "http://petesef.spaceblog.com.br/"],
			                  [ "PET Engenharia Civil", "http://www.ufrgs.br/petengcivil/" ],
			                  [ "PET Geografia", "http://www6.ufrgs.br/petgea/"],
			                  [ "PET Letras", "http://sites.google.com/site/petletrasufrgs/Home" ],
			                  [ "PET Odontologia", "http://www.ufrgs.br/pet-odonto/web/index.html"],
			                  [ "PET Psicologia", "http://www.ufrgs.br/petpsicologia"]
			               ]

      render_links_menu menu_itens

  end

  def render_pets_pucrs
    menu_itens = [ [ "PET Biologia", "http://www.pucrs.br/fabio/petbio/"],
			                  [ "PET Letras", "http://www.pucrs.br/fale/pet/index.php" ],
			                  [ "PET Informática", "http://www.inf.pucrs.br/~petinf/"],
			                  [ "PET Psicologia", "http://www.pucrs.br/psico/pet/"],
			                  [ "PET Química", "http://www.pucrs.br/quimica/petquimica/?p=capa"]
			               ]


		render_links_menu menu_itens

  end

  def render_links_menu menu_itens
    menu = menu_itens.map do |elem|
        	content_tag("strong",link_to(elem[0], elem[1] , :target => "_blank"))
    end

    ul menu
  end

  def description_gds
    {
      #"- Nenhum -" => nil,
     "GD1 Representação e instâncias representativas no PET" => 0,
     "GD2 Financiamento" => 1,
     "GD4 Interdisciplinaridade" => 3,
     "GD3 Avaliação" => 2,
     "GD5 Relação dos grupos PET nas Instituições de Ensino Superior – IES" => 4,
     "GD6 Indissociabilidade entre ensino, extensão e pesquisa" => 5,
     "GD7 Educação Tutorial" => 6,
     "GD8 As especificidades da pesquisa no PET" => 7,
     "GD9 As especificidades da extensão no PET" => 8,
     "GD10 As especificidades do ensino no PET" => 9
    }
  end

 	def areas
	{		"I - Ciências Exatas e da Terra" => 0,
			"II - Ciências Biológicas" => 1,
			"III - Engenharias" => 2,
			"IV - Ciências da Saúde" => 3,
			"V - Ciências Agrárias" => 4,
			"VI - Ciências Sociais Aplicadas" => 5,
			"VII - Ciências Humanas" => 6,
			"VIII - Lingüística, Letras e Artes" => 7 }
	end

  def is_current? link
    if request.request_uri.include? link
      "current"
    else
      ""
    end
  end

  def login_menu
    if logged_in?
       message = ''
       message += content_tag('p',"Você ainda não preencheu o #{link_to("formulário",attendees_path)} de inscrição.") unless current_user.has_attendee?
       content_tag('p', "Olá #{current_user.login}") + message + (content_tag 'p', "#{logout_button}") + (content_tag 'p', "#{edit_button}")
   	else
   	   content_tag('p', "Faça o login para ter acesso a todas as seções do site") + content_tag('p', "#{login_button}") + content_tag('p', "#{forgot_button}") #+ content_tag('p', "#{register_button}")
  	end
  end

  def forgot_button
    link_to "Esqueci minha senha!",forgot_password_path, :class => 'button'#, :style => 'float: right;'
  end

  def login_button
  	link_to "Login",login_path, :class => 'button'#, :style => 'float: right;'
  end

  def register_button
    #link_to "Registrar",registrar_path, :class => 'button'#, :style => 'float: right;'
  end

  def logout_button
    link_to "Logout",logout_path, :class => 'button'
  end

  def edit_button
  	link_to "Editar dados", edit_user_path, :class => 'button'
  end

  def header_photo number
    	 	 "<div class=\"headerphoto\"> <div class=\"photo#{number}\"> </div> </div>"
  end

  def random_with_time n
    now = Time.now()
    ( now.hour()/n + now.day() ) % n
  end

  def formated_time time_object
    t = time_object
    sprintf "%02d/%02d/%d, %02d:%02d",t.day,t.month,t.year, t.hour, t.min
  end

  def formated_timestamp time_object
    content_tag( 'i', "#{ formated_time time_object }", :class => :date)
  end

end
